<?php
namespace Pinenut\Action;

/**
 * Оборачиваем в json возвращаемые действием данные
 * Отключено представление и оболочка
 * 
 * @author kosh
 *
 */
abstract class JSON extends \Action {
	protected static $isPublic = true;
	
	protected static $layout = null;
	protected static $defaultViews = [];

	protected function runStage() {
	    // перехватываем вывод, пакуем в ответ
	    ob_start();
	    try {
	    	$data = $this->run();
	    } catch (\Exception $e) {
	    	$data = $e->getMessage();
	    	$this->response->setException($e);
	    	$this->response->code(500, 'Exception'); // TODO: вынести в приложение
	    }
	    ob_get_clean();
	    $this->response->content = json_encode($data);
	}
}